// 【函数声明】使用 function 关键字创建的函数，称为函数声明。
function showMessage() {
	console.log('Hello everyone!')
}

// showMessage() // 输出 "Hello everyone!"
// showMessage() // 输出 "Hello everyone!"

// ************************************************************************

// 【参数/默认值】
let from = 'Ann'

function showName(from, text = getText()) {
	// 函数会修改 from，但在函数外部看不到更改，因为作为参数传递给函数的值，会被复制到函数的局部变量。
	// 例如：类似于在这里创建了一个新的变量：let from = "Ann"; 与外部的 from 变量没有关系。
	from = `* ${from} *`
	console.log(from + ':' + text)
}

function getText() {
	return 'Hi'
}

showName(from, 'Hello') // 输出 "* Ann *:Hello"
showName(from) // 输出 "* Ann *:Hi"

console.log(from) // "Ann"

// ************************************************************************

// 【函数名字】
// 函数就是行为(action)。
// 名字通常是动词，它应该简短且尽可能准确的描述函数的作用。
// 函数应该简短且只有一个功能。如果这个函数功能复杂，那么把该函数拆分成几个小的函数是值得的。一个单独的函数不仅更容易测试和调试。

// 例如：获取用户列表
function getUserList() {}

// 例如：计算总和
function calcSum(a, b) {}

// 例如：创建新用户
function createUser() {}

// 例如：检查是否有权限
const checkPermission = (permissionList, buttonName) => permissionList.includes(buttonName)

// 例如：显示消息
function showMessage() {}

// 为了使代码简洁易懂，建议在函数中主要使用局部变量和参数，而不是直接使用外部变量。
